// pages/address/list/index.js
import { reqAddressList, reqDelAddress } from '../../../api/address'
import instance from '@/utils/http'
import { swiperCellBehavior } from '@/behaviors/swiperCell'

const app = getApp() // 获取应用实例

Page({

  behaviors: [swiperCellBehavior],

  // 页面的初始数据
  data: {
    addressList: [],
  },

  // 去编辑页面
  toEdit(event) {

    // 
    const { id } = event.currentTarget.dataset

    wx.navigateTo({
      url: `/modules/settingModule/pages/address/add/index?id=${id}`
    })
  },

  // 获取收货地址列表：
  async getAddressList() {
    const { data: addressList } = await reqAddressList()

    this.setData({ addressList })
  },

  // 删除地址：
  async delAddress(event) {
    // 解构传递的 id:
    const { id } = event.currentTarget.dataset

    const modalRes = await wx.modal({
      content: "您确认删除收货地址吗？"
    })

    // 如果确认删除：则调用 删除地址（reqDelAddress） 接口api
    // 同时需要给出 删除成功 提示,并重新获取地址列表
    if (modalRes) {
      await reqDelAddress(id)
      wx.toast({ title: '收货地址删除成功' })
      this.getAddressList()
    }
  },
  // 当前页面
  onShow() {
    this.getAddressList()
  },

  // 更新收货地址：
  // changeAddress(event){
  //   // 判断是否从 结算页面 进入的收货地址：

  //   // 不是：
  //   if(this.flag !== '1') return
  //   // 是：addressId 收货地址id
  //   const addressId = event.currentTarget.dataset.id

  //   // 根据收货地址id 查找地址详情：
  //   const selectAddress = this.data.addressList.find((item) => item.id === addressId)

  //   // 如果获取地址成功，需要赋值给全局共享的数据：
  //   if(selectAddress){
  //     app.globalData.address = selectAddress
  //     console.log(1);
  //     wx.navigateBack()
  //   }
  // },
  changeAddress(event) {
    // 需要判断是否是从结算支付页面进入的收货地址列表页面
    // 如果是，才能够获取点击的收货地址，否则，不执行后续的逻辑，不执行切换收货地址的逻辑
    if (this.flag !== '1') return

    // 如果是从结算支付页面进入的收货地址列表页面，需要获取点击的收货地址详细信息
    const addressId = event.currentTarget.dataset.id
    // console.log(addressId);
    // 需要从收货地址列表中根据 收货地址 ID 查找到点击的收货地址详情、详细信息
    const selectAddress = this.data.addressList.find((item) => item.id === addressId)

    // bug------------地址未 全局共享
    if (selectAddress) {
      // 如果获取收货地址成功以后，需要赋值给全局共享的数据
      app.globalData.address = selectAddress
      wx.navigateBack()
    }
  },

  // onLoad: 在页面加载时触发
  onLoad(options) {
    // 接受传递参数，挂载到页面是,方便其他方法使用
    this.flag = options.flag
  }
})
